<TagAttribute("shader_transparent_water","swat","shdr","????",2,320)>
Public Class SHADER_TRANSPARENT_WATER_TAG
Inherits HaloTag
Public Const Extension as String = "shader_transparent_water"
Public Const FourCC as String = "swat"
Public Const ParentFourCC as String = "shdr"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 2
Public Const HeaderLength as Integer = 320

''' <summary>
''' 
''' </summary>
#Region "radiosity properties"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags as Short

''' <summary>
''' affects the density of tesselation (high means slow).
''' </summary>
<TagField("detail level", 1, 17)>
Public detail_level as Short

''' <summary>
''' power of emitted light from 0 to infinity
''' </summary>
<TagField("power", 1, 0)>
Public power as Single

''' <summary>
''' 
''' </summary>
<TagField("color of emitted light", 3, 2)>
Public color_of_emitted_light as Single()

''' <summary>
''' light passing through this surface (if it's transparent) will be tinted this color.
''' </summary>
<TagField("tint color", 3, 2)>
Public tint_color as Single()

''' <summary>
''' 
''' </summary>
#End Region
#Region "physics properties"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("material type", 1, 17)>
Public material_type as Short

''' <summary>
''' 
''' </summary>
<TagField("shader type index", 2, -1)>
Public shader_type_index as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' Base map color modulates the background, while base map alpha modulates reflection brightness. B
''' </summary>
#End Region
#Region "water shader"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags_2 as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_2 as Byte()

''' <summary>
''' controls reflection brightness and background tint
''' </summary>
<TagField("base map", 16, 10)>
Public base_map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("view perpendicular brightness:[0,1]", 1, 0)>
Public view_perpendicular_brightness as Single

''' <summary>
''' 
''' </summary>
<TagField("view perpendicular tint color", 3, 2)>
Public view_perpendicular_tint_color as Single()

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("view parallel brightness:[0,1]", 1, 0)>
Public view_parallel_brightness as Single

''' <summary>
''' 
''' </summary>
<TagField("view parallel tint color", 3, 2)>
Public view_parallel_tint_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_4 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("reflection map:[0,1]", 16, 10)>
Public reflection_map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("ripple animation angle:[0,360]", 1, 0)>
Public ripple_animation_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("ripple animation velocity", 1, 0)>
Public ripple_animation_velocity as Single

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("ripple scale", 1, 0)>
Public ripple_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("ripple maps", 16, 10)>
Public ripple_maps as New TAG_REFERENCE

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("ripple mipmap levels", 1, 23)>
Public ripple_mipmap_levels as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_6 as Byte()

''' <summary>
''' flatness of last mipmap
''' </summary>
<TagField("ripple mipmap fade factor:[0,1]", 1, 0)>
Public ripple_mipmap_fade_factor as Single

''' <summary>
''' 
''' </summary>
<TagField("ripple mipmap detail bias", 1, 0)>
Public ripple_mipmap_detail_bias as Single

''' <summary>
''' 
''' </summary>
<TagField("", 64, -1)>
Public padding_7 as Byte()

''' <summary>
''' shader_transparent_water_ripple_block
''' </summary>
<TagField("ripples", 76, 11)>
Public ripples as List(Of RIPPLES_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_8 as Byte()
#End Region
Public Class RIPPLES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_1 as Byte()

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("contribution factor:[0,1]", 1, 0)>
Public contribution_factor as Single

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("animation angle:[0,360]", 1, 0)>
Public animation_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("animation velocity", 1, 0)>
Public animation_velocity as Single

''' <summary>
''' 
''' </summary>
<TagField("map offset", 2, 1)>
Public map_offset as Single()

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("map repeats", 1, 23)>
Public map_repeats as Short

''' <summary>
''' index into ripple maps
''' </summary>
<TagField("map index", 1, 23)>
Public map_index as Short

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_3 as Byte()

End Class

End Class
